using TerritoryGame.Application.Commands;
using TerritoryGame.Application.Dtos;

namespace TerritoryGame.Application.Interfaces
{
    public interface IAppAuthService
    {
        Task<ApiResult> RegisterAsync(UserRegisterDto dto);
        Task<ApiResult> LoginAsync(UserLoginDto dto);
        Task<ApiResult> RefreshTokenAsync(string refreshToken, bool forceRefresh = false);
        Task<ApiResult> SmartRefreshTokenAsync(string refreshToken, bool forceRefresh = false);
        Task<ApiResult> ValidateUserInfoAsync(ValidateUserInfoDto dto);
        Task<ApiResult> ForgetPasswordAsync(ForgetPasswordDto dto);
    }
} 